2 research outputs found

    Intelligence Processing Units Accelerate Neuromorphic Learning

    Full text link
    Spiking neural networks (SNNs) have achieved orders of magnitude improvement in terms of energy consumption and latency when performing inference with deep learning workloads. Error backpropagation is presently regarded as the most effective method for training SNNs, but in a twist of irony, when training on modern graphics processing units (GPUs) this becomes more expensive than non-spiking networks. The emergence of Graphcore's Intelligence Processing Units (IPUs) balances the parallelized nature of deep learning workloads with the sequential, reusable, and sparsified nature of operations prevalent when training SNNs. IPUs adopt multi-instruction multi-data (MIMD) parallelism by running individual processing threads on smaller data blocks, which is a natural fit for the sequential, non-vectorized steps required to solve spiking neuron dynamical state equations. We present an IPU-optimized release of our custom SNN Python package, snnTorch, which exploits fine-grained parallelism by utilizing low-level, pre-compiled custom operations to accelerate irregular and sparse data access patterns that are characteristic of training SNN workloads. We provide a rigorous performance assessment across a suite of commonly used spiking neuron models, and propose methods to further reduce training run-time via half-precision training. By amortizing the cost of sequential processing into vectorizable population codes, we ultimately demonstrate the potential for integrating domain-specific accelerators with the next generation of neural networks.Comment: 10 pages, 9 figures, journa

    Low-complexity Reinforcement Learning Decoders for Autonomous, Scalable, Neuromorphic intra-cortical Brain Machine Interfaces

    No full text
    General Description. This dataset consists of data from four BMI experiments performed on two adult macaques. Three of the experiments were joystick controlled tasks, and one of them was center-out reaching task. The macaques were able to use a wireless integrated system to control a robotic platform, over which they were sitting, to achieve independent mobility using the neuronal activity in their motor cortices. The activity of populations of single neurons was recorded using multiple electrode arrays implanted in the arm region of primary motor cortex. A general description is provided below: A titanium head post (Crist Instruments, MD, USA) was affixed prior to implantation of microelectrode arrays in both NHPs. In NHP-A, 4 microelectrode arrays containing 16 electrodes each, and in NHP-B, 1 microelectrode array containing 100 electrodes were implanted in the hand/arm region of the left primary motor cortex respectively. Spike signals were acquired using an in-house 100-channel wireless neural recording system, which is sampled at 13 KHz. The wide-band signals were then band-pass filtered between 300 to 3000 Hz to remove low-frequency components. The threshold for spike deterction was found using the formula: (Thr = 5σ; σ = median(|x|/0.6745), where x is the filtered signal, and σ is an estimate of the standard deviation of the background noise. The behavorial task was to make a robotic wheelchair bound control its motion through a three-directional spring-loaded joystick (Experiment 1, 2, and 3). The experiment comprised of four tasks - a) turning 90° right, b) moving forward by 2m, c) turning 90° left, and d) staying still for 5 seconds (stop task). Successful task completion varied from experiment to experiment. Experiment 4 also involved joystick control but the primate was trained to perform classical center-out task. Data for Experiment 1 and 3 are already publicly available at: https://osf.io/dce96/. However, a detailed description is also provided here. The data are grouped in form of folders containing data for NHP-1/2-Set 1/2. For the folder, NHP 1 Set 1, experiment 1 data consists of sessions 1,2,3; expt 3: 5,6,7,8. Similarly for Set 2: expt-1: 3,4,5,10,11; expt 3: 8,9. For the folder, NHP 2 Set 1, expt 1 consists of sessions 10,11,12,13,18,19,20,21; expt 3: 15,16,17,24. For the folder. Similarly for Set 2: expt-1: 1,2,3,10,11,12,13; expt 3: 6,7,8,9. Possible use cases. These data are ideal for designing, training, and testing iBMI decoders. We expect that the dataset will be valuable for researchers who wish to design improved models of sensorimotor cortical spiking or provide an equal footing for comparing different iBMI decoders. We also hope to inspire more work along neuromorphic lines and use of online Reinforcement Learning algorithms for iBMI decoders. Variable names. Each file from Experiment 1 and 3 contains data in the following format. 1. joystick_adfreq: The frequency of operation of the joystick. 2. X_Voltage: The voltage reading corresponding to the x-coordinate (while joystick operation). 3. Y_Voltage: The voltage reading corresponding to the y-coordinate (while joystick operation). 4. Spike_data(Channel Number): The Channel Number corresponding to which the neuronal data is recorded. 5. Spike_data(Cluster): Descripting the cluster on which the channels are placed. 6. Spike_data(Spike Times): The timestamp corresponding to the detection of a spike. 7. Spike_data(Spike Number): The total number of spikes calculated for a particular trial from a particular channel. 8. Spike_data(Mean Spike Waveform): The mean neuronal data (for that trial from a particular channel) describing a spike. 9. Spike_data(Spike Amplitude): The mean spike amplitude of that particular channel. 10. IMETrainingData(SentSignals): The truth labels corresponding to a particular trial. 11. IMETrainingData(Timestamps): Time stamps corresponding to each sent signal (data). 12. IMETrainingData(ReasonFail): String data; Reason if the trial failed. 13. IMETrainingData(TrialOutcomes): Trial results corresponding to successful or unsuccessful! 14. IMETrainingData(StartTime): corresponding to the beginning of each trial. 15. IMETrainingData(EndTime): corresponding to the end of each trial. For files in Experiment 2 and 4, 1. targetTest_Acc: Corresponding direction of the joystick recorded for each trial. (decoded using the decoder) 2. targetTrain: Ground truth label, corresponding to the actual direction of the joystick (for each trial) 3. testingSet_Acc: Number of spike counts from each channel (used for testing corresponding to all the sessions) 4. trainingSet: Number of spike counts from each channel (used for calibration, mostly) Contact Information. We would be delighted to hear from you if you find this dataset valuable, especially if it leads to publication. Corresponding author: A. Ghosh ; A. Basu . Citation. A. Ghosh, S. Shaikh, P. S. V. Sun, C. Libedinsky, R. So, N. Lin, H. Chen, Z. Wang, A. Basu, "Low-complexity Reinforcement Learning Decoders for Autonomous, Scalable, Neuromorphic intra-cortical Brain Machine Interfaces," IEEE Transaction on Neural Networks and Learning Systems (Under review
    corecore